package run.halo.app.plugins.elastic.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
import run.halo.app.plugins.elastic.enums.AnalyzerType;
import run.halo.app.plugins.elastic.enums.FieldType;

/**
 * Elasticsearch 子弹
 *
 * @author 周鹏程
 * @date 2022年08月14日
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
@Documented
@Inherited
public @interface EsField {

    @AliasFor("name")
    String value() default "";

    @AliasFor("value")
    String name() default "";

    FieldType type() default FieldType.Auto;

    String datePattern() default "";

    /** 指定分词器 */
    AnalyzerType analyzer() default AnalyzerType.STANDARD;

}